home *** CD-ROM | disk | FTP | other *** search
/ Spanish Scene 1 / SpanishScene1.iso / spanish pack n°1 by llfb / --llfb-- / programas / sources1.dms / sources1.adf / SOURCES / Campos_de_estrellas / 3DStars2.ASM < prev   
Assembly Source File  |  1996-06-04  |  9KB  |  413 lines

  1. ; MADE BY EKINOX
  2. ; TYPICAL STAR ROUTINE
  3.  
  4.  
  5.     section    STARS,code_c
  6.  
  7. POINTS    equ    150
  8. AREAS    equ    $7ff
  9. AREASZ    equ    $fff
  10. DISTANCE    equ    900
  11.  
  12.     movem.l    d0-a6,-(a7)
  13.     bsr    METEPLANO
  14.     bsr    PREPTAB
  15.     bsr    INTERRUPTS
  16.     bsr    PROGRAM
  17.     bsr    END
  18.     movem.l    (a7)+,d0-a6    
  19.     rts
  20.  
  21. METEPLANO
  22.     lea    PLANING(pc),a0
  23.     move.l    #SHOW,d0
  24.     moveq    #2,d7
  25.     
  26. METE2    move.w    d0,6(a0)
  27.     swap    d0
  28.     move.w    d0,2(a0)
  29.     swap    d0
  30.     add.l    #40,d0
  31.     addq    #8,a0
  32.     dbra    d7,METE2
  33.  
  34.     rts
  35.  
  36. PREPTAB
  37.     lea    COORDS(pc),a0
  38.     move.w    #POINTS-1,d7
  39.     
  40.     move.w    #AREAS/2,d3
  41.     move.w    #100,d4        ;#AREASZ/2,d4
  42.  
  43. PREPT2    bsr    RANDOM
  44.     and.l    #AREAS,d2
  45.     sub.w    d3,d2
  46.     move.w    d2,(a0)+
  47.  
  48.     bsr    RANDOM
  49.     and.l    #AREAS,d2
  50.     sub.w    d3,d2
  51.     move.w    d2,(a0)+
  52.  
  53.     bsr    RANDOM
  54.     and.l    #AREASZ,d2
  55.     sub.w    d4,d2
  56.     move.w    d2,(a0)+
  57.  
  58.     dbra    d7,PREPT2
  59.     rts
  60.  
  61. RANDOM
  62.     MOVE.L    RND1,A2
  63.     MOVE.L    (A2),D2
  64.     ADD.L    #$5000,A2
  65.     MOVE.L    (A2),D1
  66.     EOR.L    D1,D2
  67.     MOVE.L    RND2,D1
  68.     ADD.L    #$42F54F32,D2
  69.     EOR.L    D1,D2
  70.     ADD.W    $DFF006,D2
  71.     EOR.L    #$DFF546,D2
  72.     MOVE.L    D2,RND2
  73.     ADD.L    #4,RND1
  74.     RTS
  75. RND1    DC.L    0
  76. RND2    DC.L    0
  77.     
  78.  
  79. INTERRUPTS
  80.     lea    $dff000,a6
  81.     
  82.     move.w    $2(a6),SAVEDMA
  83.     move.w    $1c(a6),SAVEINT
  84.     move.w    $1e(a6),SAVEIRQ
  85.     
  86.     move.w    #$7fff,d0
  87.     move.w    d0,$96(a6)
  88.     move.w    d0,$9a(a6)
  89.     move.w    d0,$9c(a6)
  90.  
  91.     move.w    #%1000011111100000,$96(a6)
  92.     move.w    #$c000,$9a(a6)
  93.  
  94.     move.l    #COPPER,$84(a6)
  95.     clr.w    $8a(a6)
  96.     rts
  97.  
  98. END    lea    SAVEDMA(pc),a0
  99.     ori.b    #$80,(a0)
  100.     ori.b    #$80,2(a0)
  101.     ori.b    #$80,4(a0)
  102.     
  103.     move.w    (a0)+,$96(a6)
  104.     move.w    (a0)+,$9a(a6)
  105.     move.w    (a0)+,$9c(a6)
  106.  
  107.     rts
  108.  
  109. SAVEDMA
  110.     DC.W    0
  111. SAVEINT
  112.     DC.W    0
  113. SAVEIRQ
  114.     DC.W    0
  115.  
  116. PROGRAM
  117.     cmp.b    #$2c,$6(a6)
  118.     bne.s    PROGRAM
  119.     
  120.     bsr    BORRA
  121.     bsr    CALCPOINTS
  122.  
  123. BBUSY2    btst    #14,$2(a6)
  124.     bne.s    BBUSY2
  125.  
  126.     bsr    PSET
  127.  
  128. ;    move.w    $a(a6),d0
  129. ;    lsr.w    #8,d0
  130. ;    ext.w    d0
  131. ;    move.w    d0,INCR
  132.  
  133.     btst    #6,$bfe001
  134.     bne.s    PROGRAM
  135.     rts
  136.  
  137.  
  138. BORRA    
  139.     movem.l    ACTSCREEN(pc),d0/d1
  140.     exg    d0,d1
  141.     movem.l    d0/d1,ACTSCREEN
  142.     
  143.     lea    PLANING(pc),a0
  144.     moveq    #2,d7
  145. BOR2    move.w    d1,6(a0)
  146.     swap    d1
  147.     move.w    d1,2(a0)
  148.     swap    d1
  149.     add.l    #40,d1
  150.     addq    #8,a0
  151.     dbra    d7,BOR2
  152.     
  153. BBUSY    btst    #14,$2(a6)
  154.     bne.s    BBUSY
  155.     
  156.     move.l    d0,$54(a6)
  157.     move.l    #$1000000,$40(a6)
  158.     move.l    #-1,$44(a6)
  159.     move.l    #0,$64(a6)
  160.     move.w    #(768*64)+20,$58(a6)
  161.  
  162.     rts
  163.  
  164. CALCPOINTS
  165.  
  166.     lea    COORDS(pc),a0
  167.     lea    XEYS(pc),a1
  168.  
  169. ;    add.w    #1,INCR
  170.     movem.w    INCR(pc),d3-d5
  171.     move.w    #POINTS-1,d7
  172.  
  173. CALC2    movem.w    (a0)+,d0-d2
  174.  
  175.     add.w    d3,d0
  176.     cmp.w    #AREAS/2,d0
  177.     blt.s    CALC3
  178.  
  179.     sub.w    #AREAS,d0
  180.  
  181. CALC3    add.w    d4,d1
  182.     add.w    d5,d2
  183.     cmp.w    #-150,d2
  184.     bls.s    CALC4
  185.     move.w    #AREASZ,d2
  186. CALC4
  187.  
  188.     movem.w    d0-d2,-6(a0)
  189.  
  190. vpoint:
  191.     move.l    #DISTANCE,d6    ; distance to v.point
  192.     add.w    d2,d6    ; add z-offset
  193.     ext.l    d0
  194.     asl.l    #8,d0
  195. ;    muls    #256,d0
  196.  
  197.     divs    d6,d0
  198.     ext.l    d1
  199.     asl.l    #8,d1
  200. ;    muls    #256,d1
  201.  
  202.     divs    d6,d1
  203.  
  204. vpos:
  205.     add.w    #160,d0
  206.     add.w    #100,d1
  207.  
  208.     lsr.w    #8,d2
  209.     lsr.w    #1,d2
  210.  
  211.     move.w    d0,(a1)+
  212.     move.w    d1,(a1)+
  213.     move.w    d2,(a1)+
  214.  
  215.     dbra    d7,CALC2
  216.  
  217.     rts
  218.  
  219. PSET    lea    XEYS(pc),a0
  220.     lea    TABROUT(pc),a1
  221.     move.l    ACTSCREEN(pc),a5
  222.     move.w    #POINTS-1,d7
  223.  
  224. PSET2    move.w    (a0),d0
  225.     bmi.s    PSETFIN
  226.     cmp.w    #320,d0
  227.     bhi.s    PSETFIN
  228.  
  229.     move.w    2(a0),d1
  230.     bmi.s    PSETFIN
  231.     cmp.w    #256,d1
  232.     bhi.s    PSETFIN
  233.  
  234.     move.w    d1,d2
  235. ;    asl.w    #5,d1
  236. ;    asl.w    #3,d2
  237.     muls    #120,d1
  238.  
  239. ;    add.w    d2,d1
  240.  
  241.     move.w    d0,d2
  242.     asr.w    #3,d0
  243.     andi.w    #7,d2
  244.     not.b    d2
  245.     add.w    d0,d1
  246.     
  247.     move.w    4(a0),d3
  248.     and.w    #$7,d3
  249.     lsl.w    #2,d3
  250.     move.l    (a1,d3.w),a4
  251.     jsr    (a4)
  252.  
  253. ;    bset    d2,(a5,d1.w)
  254.  
  255. PSETFIN    addq    #6,a0
  256.     dbra    d7,PSET2
  257.     rts
  258.  
  259. TABROUT    dc.l    TINT1,TINT2,TINT3,TINT4,TINT5,TINT6,TINT7,TINT8
  260.  
  261. TINT1    bset    d2,(a5,d1.w)
  262.     rts
  263.  
  264. TINT2    bset    d2,40(a5,d1.w)
  265.     rts
  266.  
  267. TINT3    bset    d2,(a5,d1.w)
  268.     bset    d2,40(a5,d1.w)
  269.     rts
  270.  
  271. TINT4    bset    d2,80(a5,d1.w)
  272.     rts
  273.  
  274. TINT5    bset    d2,80(a5,d1.w)
  275.     bset    d2,(a5,d1.w)
  276.     rts
  277.     
  278. TINT6    bset    d2,80(a5,d1.w)
  279.     bset    d2,40(a5,d1.w)
  280.     rts
  281.  
  282. TINT7    bset    d2,(a5,d1.w)
  283.     bset    d2,40(a5,d1.w)
  284.     bset    d2,80(a5,d1.w)
  285.     rts
  286.  
  287. TINT8    rts
  288.  
  289. INCR    dc.w    10,0,-20
  290. COORDS    dcb.w    POINTS*3,0
  291. XEYS    dcb.w    POINTS*3,0
  292.  
  293. angles:    
  294.     dc.w    $0000,$023c,$0478,$06b3,$08ee,$0b28,$0d61,$0f99
  295.     dc.w    $11d0,$1406,$163a,$186c,$1a9d,$1ccb,$1ef7,$2121
  296.     dc.w    $2348,$256c,$278e,$29ac,$2bc7,$2ddf,$2ff3,$3203
  297.     dc.w    $3410,$3618,$381c,$3a1c,$3c17,$3e0e,$3fff,$41ec
  298.     dc.w    $43d4,$45b6,$4793,$496a,$4b3c,$4d08,$4ecd,$508d
  299.     dc.w    $5246,$53f9,$55a5,$574b,$58ea,$5a82,$5c13,$5d9c
  300.     dc.w    $5f1f,$609a,$620d,$6379,$64dd,$6639,$678d,$68d9
  301.     dc.w    $6a1d,$6b59,$6c8c,$6db7,$6ed9,$6ff3,$7104,$720c
  302.     dc.w    $730b,$7401,$74ee,$75d2,$76ad,$777f,$7847,$7906
  303.     dc.w    $79bb,$7a67,$7b0a,$7ba2,$7c32,$7cb7,$7d33,$7da5
  304.     dc.w    $7e0d,$7e6c,$7ec0,$7f0b,$7f4c,$7f82,$7faf,$7fd2
  305.     dc.w    $7feb,$7ffa,$7fff,$7ffa,$7feb,$7fd2,$7faf,$7f82
  306.     dc.w    $7f4b,$7f0b,$7ec0,$7e6c,$7e0d,$7da5,$7d33,$7cb7
  307.     dc.w    $7c32,$7ba2,$7b0a,$7a67,$79bb,$7906,$7847,$777f
  308.     dc.w    $76ad,$75d2,$74ee,$7401,$730b,$720c,$7104,$6ff3
  309.     dc.w    $6ed9,$6db7,$6c8c,$6b59,$6a1d,$68d9,$678d,$6639
  310.     dc.w    $64dd,$6379,$620d,$609a,$5f1f,$5d9c,$5c13,$5a82
  311.     dc.w    $58ea,$574b,$55a5,$53f9,$5246,$508d,$4ecd,$4d08
  312.     dc.w    $4b3c,$496a,$4793,$45b6,$43d4,$41ec,$4000,$3e0e
  313.     dc.w    $3c17,$3a1c,$381c,$3618,$3410,$3203,$2ff3,$2ddf
  314.     dc.w    $2bc7,$29ac,$278e,$256c,$2348,$2121,$1ef7,$1ccb
  315.     dc.w    $1a9d,$186c,$163a,$1406,$11d0,$0f99,$0d61,$0b28
  316.     dc.w    $08ee,$06b3,$0478,$023c,$0000,$fdc4,$fb89,$f94d
  317.     dc.w    $f712,$f4d8,$f29f,$f067,$ee30,$ebfa,$e9c6,$e794
  318.     dc.w    $e564,$e335,$e109,$dedf,$dcb8,$da94,$d873,$d654
  319.     dc.w    $d439,$d222,$d00d,$cdfd,$cbf1,$c9e8,$c7e4,$c5e4
  320.     dc.w    $c3e9,$c1f2,$c001,$be14,$bc2c,$ba4a,$b86d,$b696
  321.     dc.w    $b4c4,$b2f9,$b133,$af73,$adba,$ac07,$aa5b,$a8b5
  322.     dc.w    $a716,$a57e,$a3ee,$a264,$a0e2,$9f67,$9df3,$9c87
  323.     dc.w    $9b23,$99c7,$9873,$9727,$95e3,$94a7,$9374,$9249
  324.     dc.w    $9127,$900e,$8efd,$8df5,$8cf5,$8bff,$8b12,$8a2e
  325.     dc.w    $8953,$8882,$87b9,$86fa,$8645,$8599,$84f6,$845e
  326.     dc.w    $83ce,$8349,$82cd,$825b,$81f3,$8194,$8140,$80f5
  327.     dc.w    $80b5,$807e,$8051,$802e,$8015,$8006,$8001,$8006
  328.     dc.w    $8015,$802e,$8051,$807e,$80b4,$80f5,$8140,$8194
  329.     dc.w    $81f3,$825b,$82cd,$8349,$83ce,$845d,$84f6,$8599
  330.     dc.w    $8645,$86fa,$87b9,$8881,$8953,$8a2e,$8b12,$8bff
  331.     dc.w    $8cf5,$8df4,$8efc,$900d,$9127,$9249,$9374,$94a7
  332.     dc.w    $95e3,$9727,$9873,$99c7,$9b23,$9c87,$9df3,$9f66
  333.     dc.w    $a0e1,$a263,$a3ed,$a57e,$a716,$a8b5,$aa5a,$ac06
  334.     dc.w    $adb9,$af73,$b132,$b2f8,$b4c4,$b695,$b86c,$ba49
  335.     dc.w    $bc2c,$be13,$c000,$c1f2,$c3e8,$c5e4,$c7e3,$c9e7
  336.     dc.w    $cbf0,$cdfc,$d00d,$d221,$d438,$d653,$d872,$da93
  337.     dc.w    $dcb8,$dedf,$e108,$e334,$e563,$e793,$e9c5,$ebf9
  338.     dc.w    $ee2f,$f066,$f29e,$f4d7,$f712,$f94c,$fb88,$fdc3
  339.     dc.w    $7fff,$7ffa,$7feb,$7fd2,$7faf,$7f82,$7f4c,$7f0b
  340.     dc.w    $7ec0,$7e6c,$7e0d,$7da5,$7d33,$7cb7,$7c32,$7ba2
  341.     dc.w    $7b0a,$7a67,$79bb,$7906,$7847,$777f,$76ad,$75d2
  342.     dc.w    $74ee,$7401,$730b,$720c,$7104,$6ff3,$6ed9,$6db7
  343.     dc.w    $6c8c,$6b59,$6a1d,$68d9,$678d,$6639,$64dd,$6379
  344.     dc.w    $620d,$609a,$5f1f,$5d9c,$5c13,$5a82,$58ea,$574b
  345.     dc.w    $55a5,$53f9,$5246,$508d,$4ecd,$4d08,$4b3c,$496a
  346.     dc.w    $4793,$45b6,$43d4,$41ec,$3fff,$3e0e,$3c17,$3a1c
  347.     dc.w    $381c,$3618,$3410,$3203,$2ff3,$2ddf,$2bc7,$29ac
  348.     dc.w    $278e,$256c,$2348,$2121,$1ef7,$1ccb,$1a9d,$186c
  349.     dc.w    $163a,$1406,$11d0,$0f99,$0d61,$0b28,$08ee,$06b3
  350.     dc.w    $0478,$023c,$0000,$fdc4,$fb88,$f94d,$f712,$f4d8
  351.     dc.w    $f29f,$f067,$ee30,$ebfa,$e9c6,$e794,$e563,$e335
  352.     dc.w    $e109,$dedf,$dcb8,$da94,$d872,$d654,$d439,$d221
  353.     dc.w    $d00d,$cdfd,$cbf0,$c9e8,$c7e4,$c5e4,$c3e9,$c1f2
  354.     dc.w    $c000,$be14,$bc2c,$ba4a,$b86d,$b696,$b4c4,$b2f8
  355.     dc.w    $b133,$af73,$adba,$ac07,$aa5b,$a8b5,$a716,$a57e
  356.     dc.w    $a3ed,$a264,$a0e1,$9f66,$9df3,$9c87,$9b23,$99c7
  357.     dc.w    $9873,$9727,$95e3,$94a7,$9374,$9249,$9127,$900d
  358.     dc.w    $8efc,$8df4,$8cf5,$8bff,$8b12,$8a2e,$8953,$8881
  359.     dc.w    $87b9,$86fa,$8645,$8599,$84f6,$845e,$83ce,$8349
  360.     dc.w    $82cd,$825b,$81f3,$8194,$8140,$80f5,$80b5,$807e
  361.     dc.w    $8051,$802e,$8015,$8006,$8001,$8006,$8015,$802e
  362.     dc.w    $8051,$807e,$80b4,$80f5,$8140,$8194,$81f3,$825b
  363.     dc.w    $82cd,$8349,$83ce,$845d,$84f6,$8599,$8645,$86fa
  364.     dc.w    $87b9,$8881,$8953,$8a2e,$8b12,$8bff,$8cf5,$8df4
  365.     dc.w    $8efc,$900d,$9127,$9249,$9374,$94a7,$95e3,$9727
  366.     dc.w    $9873,$99c7,$9b23,$9c87,$9df3,$9f66,$a0e1,$a264
  367.     dc.w    $a3ed,$a57e,$a716,$a8b5,$aa5a,$ac07,$adba,$af73
  368.     dc.w    $b132,$b2f8,$b4c4,$b695,$b86d,$ba4a,$bc2c,$be13
  369.     dc.w    $c000,$c1f2,$c3e9,$c5e4,$c7e4,$c9e8,$cbf0,$cdfd
  370.     dc.w    $d00d,$d221,$d439,$d654,$d872,$da93,$dcb8,$dedf
  371.     dc.w    $e109,$e335,$e563,$e793,$e9c6,$ebfa,$ee2f,$f066
  372.     dc.w    $f29e,$f4d8,$f712,$f94d,$fb88,$fdc4,$0000,$023b
  373.     dc.w    $0477,$06b2,$08ed,$0b27,$0d61,$0f99,$11d0,$1405
  374.     dc.w    $1639,$186c,$1a9c,$1cca,$1ef7,$2120,$2347,$256c
  375.     dc.w    $278d,$29ab,$2bc6,$2dde,$2ff2,$3203,$340f,$3617
  376.     dc.w    $381c,$3a1b,$3c17,$3e0d,$3fff,$41ec,$43d3,$45b6
  377.     dc.w    $4793,$496a,$4b3b,$4d07,$4ecd,$508c,$5246,$53f9
  378.     dc.w    $55a5,$574b,$58e9,$5a81,$5c12,$5d9c,$5f1e,$6099
  379.     dc.w    $620d,$6378,$64dc,$6639,$678d,$68d9,$6a1d,$6b58
  380.     dc.w    $6c8c,$6db6,$6ed9,$6ff2,$7103,$720b,$730a,$7401
  381.     dc.w    $74ee,$75d2,$76ad,$777e,$7847,$7906,$79bb,$7a67
  382.     dc.w    $7b09,$7ba2,$7c32,$7cb7,$7d33,$7da5,$7e0d,$7e6b
  383.     dc.w    $7ec0,$7f0b,$7f4b,$7f82,$7faf,$7fd2,$7feb,$7ffa
  384.  
  385. COPPER    
  386.     DC.W    $0100,$3200,$008E,$2C81,$0090,$2CC1
  387.     DC.W    $0092,$0038,$0094,$00D0
  388.     DC.W    $0108,80,$010A,80
  389. COL1    DC.W    $0180,$0000,$0182,$0FFF,$0184,$0ddd,$0186,$0bbb
  390.     dc.w    $0188,$0999,$018a,$0777,$018c,$0555,$018e,$0333
  391.  
  392. PLANING    DC.W    $00E0,$0000,$00E2,$0000
  393.     DC.W    $00E4,$0000,$00E6,$0000
  394.     DC.W    $00E8,$0000,$00EA,$0000
  395.  
  396. SPRITES    DC.W    $0120,$0000,$0122,$0000
  397.     DC.W    $0124,$0000,$0126,$0000
  398.     DC.W    $0128,$0000,$012A,$0000
  399.     DC.W    $012C,$0000,$012E,$0000
  400.     DC.W    $0130,$0000,$0132,$0000
  401.     DC.W    $0134,$0000,$0136,$0000
  402.     DC.W    $0138,$0000,$013A,$0000
  403.     DC.W    $013C,$0000,$013E,$0000
  404. FINAL    DC.W    $FFFF,$FFFE
  405.  
  406. ACTSCREEN
  407.     dc.l    SHOW,SHOW2
  408.  
  409. SHOW    dcb.b    10240*3
  410. SHOW2    dcb.b    10240*3
  411.     
  412.  
  413.